\subsection{Find the topology for the intersections between a spline surface and an
\mbox{elliptic} cone.}
\funclabel{s1503}
\begin{minipg1}
  Find all intersections between a tensor-product surface and an elliptic cone.
  Intersection curves are described by guide points.
  To produce the intersection curves use s1501() described on page \pageref{s1501}.
\end{minipg1} \\
SYNOPSIS\\
        \>void s1503(\begin{minipg3}
                        {\fov surf}, {\fov basept}, {\fov normdir}, {\fov ellipaxis}, {\fov alpha}, {\fov ratio}, {\fov dim}, {\fov epsco}, {\fov epsge}, {\fov numintpt}, {\fov pointpar},
                        {\fov numintcr}, {\fov intcurves}, {\fov stat})
                \end{minipg3}\\[0.3ex]
                \>\>    SISLSurf        \>      *{\fov surf};\\
                \>\>    double  \>      {\fov basept}[\,];\\
                \>\>    double  \>      {\fov normdir}[\,];\\
                \>\>    double  \>      {\fov ellipaxis}[\,];\\
                \>\>    double  \>      {\fov alpha};\\
                \>\>    double  \>      {\fov ratio};\\
                \>\>    int     \>      {\fov dim};\\
                \>\>    double  \>      {\fov epsco};\\
                \>\>    double  \>      {\fov epsge};\\
                \>\>    int     \>      *{\fov numintpt};\\
                \>\>    double  \>      **{\fov pointpar};\\
                \>\>    int     \>      *{\fov numintcr};\\
                \>\>    SISLIntcurve\>  ***{\fov intcurves};\\
                \>\>    int     \>      *{\fov stat};\\
\\
ARGUMENTS\\
        \>Input Arguments:\\
        \>\>    {\fov surf}\> - \>      \begin{minipg2}
                                Pointer to the surface
                                \end{minipg2}\\
        \>\>    {\fov basept}\> - \>    \begin{minipg2}
                                Base point of the cone, centre of elliptic base.
                                \end{minipg2}\\
        \>\>    {\fov normdir}\> - \>   \begin{minipg2}
                                Direction of the cone axis, normal to the elliptic base. The default is pointing from the base point to the top point.
                                \end{minipg2}\\[0.8ex]
        \>\>    {\fov ellipaxis}\> - \> \begin{minipg2}
                                One of the axes of the ellipse (major or
                                minor).
                                The other axis will be calculated as
                                $normdir\times ellipaxis$ scaled with
                                {\fov ratio}.
                                \end{minipg2}\\[0.8ex]
        \>\>    {\fov alpha}\> - \>     \begin{minipg2}
                                The opening angle in radians of the cone at the ellipaxis.
                                \end{minipg2}\\[0.8ex]
        \>\>    {\fov ratio}\> - \>     \begin{minipg2}
                                The ratio of the major and minor
                                axes = ellipaxis/otheraxis.
                                \end{minipg2}\\[0.8ex]
        \>\>    {\fov dim}\> - \>       \begin{minipg2}
                                Dimension of the space in which the cone lies.
                                \end{minipg2}\\
        \>\>    {\fov epsco}\> - \>     \begin{minipg2}
                                Computational resolution (not used).
                                \end{minipg2}\\
        \>\>    {\fov epsge}\> - \>     \begin{minipg2}
                                Geometry resolution.
                                \end{minipg2}
\newpagetabs
\\
        \>Output Arguments:\\
        \>\>    {\fov numintpt}\> - \>  \begin{minipg2}
                                Number of single intersection points.
                                \end{minipg2}\\
        \>\>    {\fov pointpar}\> - \>  \begin{minipg2}
                                Array containing the parameter values of the single
                                intersection points in the parameter plane of the
                                surface. The points lie in sequence. Intersection curves
                                are stored in intcurves.
                                \end{minipg2}\\[0.8ex]
        \>\>    {\fov numintcr}\> - \>  \begin{minipg2}
                                Number of intersection curves.
                                \end{minipg2}\\
        \>\>    {\fov intcurves}\> - \> \begin{minipg2}
                                Array containing the description of the intersection
                                curves. The curves are only described by
                                start points and end points (guide points) in
                                the parameter plane. The curve pointers point to
                                nothing.
                                \end{minipg2}\\[0.3ex]
        \>\>    {\fov stat}     \> - \> Status messages\\
                \>\>\>\>\>              $> 0$   : warning\\
                \>\>\>\>\>              $= 0$   : ok\\
                \>\>\>\>\>              $< 0$   : error\\
\\
EXAMPLE OF USE\\
                \>      \{ \\
                \>\>    SISLSurf        \>      *{\fov surf}; \, /* Must be defined */\\
                \>\>    double  \>      {\fov basept}[3]; \, /* Must be defined */\\
                \>\>    double  \>      {\fov normdir}[3]; \, /* Must be defined */\\
                \>\>    double  \>      {\fov ellipaxis}[3]; \, /* Must be defined */\\
                \>\>    double  \>      {\fov alpha}; \, /* Must be defined */\\
                \>\>    double  \>      {\fov ratio}; \, /* Must be defined */\\
                \>\>    int     \>      {\fov dim} = 3;\\
                \>\>    double  \>      {\fov epsco} = 1.0e-9; /* Not used */\\
                \>\>    double  \>      {\fov epsge} = 1.0e-6;\\
                \>\>    int     \>      {\fov numintpt} = 0;\\
                \>\>    double  \>      *{\fov pointpar} = NULL;\\
                \>\>    int     \>      {\fov numintcr} = 0;\\
                \>\>    SISLIntcurve\>  **{\fov intcurves} = NULL;\\
                \>\>    int     \>      {\fov stat} = 0;\\
                \>\>    \ldots \\
        \>\>s1503(\begin{minipg4}
                {\fov surf}, {\fov basept}, {\fov normdir}, {\fov ellipaxis}, {\fov alpha}, {\fov ratio}, {\fov dim}, {\fov epsco}, {\fov epsge}, \&{\fov numintpt}, \&{\fov pointpar},
                \&numintcr, \&intcurves, \&stat);
                        \end{minipg4}\\
                \>\>    \ldots \\
                \>      \}
\end{tabbing}
